"""
自定义文件访问类
1，自定义类，继承自django.core.files.storage.Storage
2, 重写url方法
"""
from django.core.files.storage import Storage
from django.conf import settings
from fdfs_client.client import Fdfs_client

# 1,自定义类
class MyFileStorage(Storage):
    # 访问的时候，执行的方法
    def url(self, name):
        return settings.BASE_URL + name

    # 判断图片在数据库中是否已经存在
    def exists(self, name):
        return False # 返回False表示改图片名称可用，可以存储

    # 还需要提供save方法保存图片
    def save(self, name, content, max_length=None):
        client = Fdfs_client("PMSP/utils/fastdfs/client.conf")
        ret = client.upload_by_buffer(content.read())
        print(ret)
        if ret.get("Status") == 'Upload successed.':
            return ret.get("Remote file_id")
        else:
            return None